/**
 * 全方位判断空值
 * @param {*} val 任意类型
 * @returns {boolean} 是否为空
 */
export function isEmpty(val) {
    
  if (val === undefined || val === null) return true;
  if (typeof val === 'string' && val.trim() === '') return true;
  if (Array.isArray(val) && val.length === 0) return true;
  if (typeof val === 'object' && !Array.isArray(val) && Object.keys(val).length === 0) return true;
  if (typeof val === 'number' && isNaN(val)) return true;
  return false;
}

/**
 * 根据经纬度计算两点间距离（单位：公里，保留两位小数）
 * @param {number} lat1 出发地纬度
 * @param {number} lng1 出发地经度
 * @param {number} lat2 目的地纬度
 * @param {number} lng2 目的地经度
 * @returns {number} 距离（公里）
 */
export function getDistanceByLngLat(lat1, lng1, lat2, lng2) {
  function toRad(d) {
    return d * Math.PI / 180;
  }
  const R = 6371; // 地球半径，单位：公里
  const dLat = toRad(lat2 - lat1);
  const dLng = toRad(lng2 - lng1);
  const a =
    Math.sin(dLat / 2) * Math.sin(dLat / 2) +
    Math.cos(toRad(lat1)) * Math.cos(toRad(lat2)) *
    Math.sin(dLng / 2) * Math.sin(dLng / 2);
  const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
  const distance = R * c;
  return Math.round(distance * 100) / 100;
} 